#!/bin/bash

# 测试DWC_usb3.lst文件列表处理

echo "=== DWC USB3 文件列表处理测试 ==="

# 进入modb目录
cd /home/apachee/trunk/Crystal/CrystalFlowAnalyzer/modb

# 设置环境变量
export PROJ_ROOT=/home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc

echo "环境变量 PROJ_ROOT 设置为: $PROJ_ROOT"

# 验证环境变量是否正确设置
if [ -z "$PROJ_ROOT" ]; then
    echo "错误: PROJ_ROOT 环境变量未设置"
    exit 1
fi

# 验证关键路径是否存在
if [ ! -d "$PROJ_ROOT/design/usb2/src/lsp" ]; then
    echo "错误: 路径 $PROJ_ROOT/design/usb2/src/lsp 不存在"
    exit 1
fi

echo "路径验证通过"

# 显示文件列表的前几行
echo "文件列表前10行:"
head -10 /home/apachee/trunk/Crystal/CrystalFlowAnalyzer/a9soc/design/usb2/src/DWC_usb3.lst

# 测试环境变量解析功能
echo "测试环境变量解析..."

# 创建一个简化的小型测试文件列表，只包含几个文件
cat > usb_dwc3_small_test.list << 'EOF'
$PROJ_ROOT/design/usb2/src/lsp/usb2_DWC_usb3_lsp_nsr.v
$PROJ_ROOT/design/usb2/src/lsp/usb2_DWC_usb3_lsp.v
$PROJ_ROOT/design/usb2/src/lsp/usb2_DWC_usb3_lsp_barb.v
EOF

echo "创建小型测试文件列表完成"

# 测试处理小型文件列表
echo "处理小型文件列表..."
./moparse -f usb_dwc3_small_test.list -o usb_dwc3_small_test.modb

# 检查是否生成了modb文件
if [ -f "usb_dwc3_small_test.modb" ]; then
    echo "✓ 成功生成小型测试modb文件"
    ls -la usb_dwc3_small_test.modb
    
    # 显示文件信息
    echo "显示生成的modb文件信息:"
    ./moparse -s usb_dwc3_small_test.modb
    
    # 清理生成的文件
    rm -f usb_dwc3_small_test.modb
else
    echo "✗ 未能生成小型测试modb文件"
fi

# 清理测试文件
rm -f usb_dwc3_small_test.list

echo "=== DWC USB3 文件列表处理测试完成 ==="